System for synchronizing nodes on a network

ABSTRACT

A system of computers on a wide area network establishes connections between nodes on the basis of their multidimensional similarity at a particular point in time in a certain setting, such as a social learning network, and sends information of value to those nodes. Dimensions in the definition of similarity include a plurality of attributes in time and community space. Examples of such dimensions and attributes may include a position in a learning community&#39;s project cycle, titles of readings and projects, the genre or subject matter under consideration, age, grade, or level of the participants, and language. The network&#39;s nodes are represented as a tensor field and are searched efficiently and adaptively through a variety of multidimensional data structures and mechanisms. The system includes a master clock that can transform a participant&#39;s time coordinates on the network, such as a social learning network, into Universal Time, and the synchronizer coordinates the position of each participant.

RELATED APPLICATIONS

This application is a divisional of non-provisional U.S. application Ser. No. 11/937,495 filed on Nov. 8, 2007, which claims priority to U.S. provisional U.S. Application No. 60/857,570 filed on Nov. 8, 2006. The contents of the aforementioned application is hereby incorporated by reference.

FIELD OF THE INVENTION

This invention generally relates to systems and methods of establishing meaningful connections between nodes on a network and allowing synchronization of those nodes.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure of the present invention, including the best mode thereof directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended drawings, in which:

FIG. 1 is a flowchart of an exemplary system for establishing meaningful connections between nodes on a network and allowing synchronization thereof.

Repeat use of reference characters in the present specification and drawings is intended to represent same or analogous features or elements of the invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Reference will now be made in detail to presently preferred embodiments of the invention, one or more examples of which are illustrated in the accompanying drawings. Each example is provided by way of explanation of the invention, not limitation of the invention. In fact, it will be apparent to those skilled in the art that modifications and variations can be made in the present invention without departing from the scope or spirit thereof. For instance, features illustrated or described as part of one embodiment may be used on another embodiment to yield a still further embodiment. Thus, it is intended that the present invention covers such modifications and variations as come within the scope of the appended claims and their equivalents. Additional aspects and advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.

The present invention is a system and related method for establishing meaningful connections between nodes on a network. The invention allows reliable information to be made available to the nodes, such that computers and networks measure similarity between nodes at a particular point in time.

While the invention has many different applications, one specific embodiment relates to a system and method of creating and operating a social learning network. For the purposes of this example and the present disclosure, copending patent application entitled “System for Developing Literacy Skills Using Loosely Coupled Tools in a Self-Directed Learning Process Within a Collaborative Social Network”, filed simultaneously herewith and bearing Attorney Docket No. 28849/09004 is incorporated herein in its entirety. The present system and method may be incorporated, in one embodiment, into the learning process within the collaborative social network described therein.

Generally speaking, a “node” should usually have unique identifying characteristics, be capable of receiving information, and be capable of communicating, displaying, acting, or otherwise using information. Generally, in the present method and system, the node must be “registered” at some point. This usually requires that the node be identified in some manner and then information should be received about the node. At some point, the needs of the node will be determined Those needs could be determined based on characteristics of the node; sequences of events, triggers, or actions related to the node; or by comparison of similarly-situation nodes. The needs, in the present system, can be self-updating and can be defined by a cycle of repeating steps and assessments.

The needs of the node(s) are then mapped into an orientation of one or more events. Of course, the orientation and map can be constantly changing, which would change the ultimate synchronization at times. Once the orientation and synchronization has been determined, then the nodes can be handled in various ways. Among the ways that the nodes can be addressed include delivering satisfaction of the nodes' needs, notifying of other nodes having the same or similar needs or orientation, establishing communication between the node and similarly-situation node(s), or converting similarly-situation node(s). The system may then move on to the next state after the option has been presented and/or addressed to the node, after the passage of a certain amount of time, or after the occurring of an external event.

Therefore, the present system and method is a dynamic system which is constantly and continuously changing. In particular, the needs set and the orientation set are continuously changing. The vector of attributes changes based on behavior and events.

However, the present invention allows the “clocks” to be set for distributed nodes based on these continuously changing vectors. The “clock is set” by the present method by putting all the nodes in the same state; defining similar needs and attribute sets; and providing similarly-situation (or “synchronized”) nodes with similar or the same options. The synchronization of the present method actually allows coordination of the nodes by providing a synchronous relationship on top of asynchronous relationships.

In the particular embodiment described herein as an example, the “nodes” of the system are the participants themselves. In the social learning network, definitions of “nearness” that might affect similarity include attributes related to participants such as the participant's position in learning cycle; the titles and/or genres of books being read or the subject matter of the projects being undertaken; the ages, grades, and skill levels of the participants; and the participant's language, location, etc, The informative attributes being tracked by the system can be any attribute or characteristic of a participant in the social learning network, any aspect of the material to be learned, or any other point that can be objectively defined.

Definitions of “time” in relation to the nodes of each network can be different for each participant, but a master clock relates these to Universal Time and establishes metrics to determine which clocks of each node are similar. This invention also creates a matrix of pairwise “distances” between each set of nodes under consideration. Creation of such a matrix enables concepts of either metric or non-metric multidimensional scaling to be used to visualize the data and select clusters, to which the system can send or receive multimedia content, messages, or information about resources on the web.

Referring to FIG. 1, an exemplary system is shown that manages connections between nodes in a learning community connected by a wide area network. The system identifies clusters among the nodes that share similar attributes, sends or receives content or links to content to those nodes, and passes information to the nodes to let them know they are part of a particular cluster.

A set of nodes in the network can be thought of as a tensor field, composed of vectors that each embodies coordinates of similarly measured attributes such as space and time, arbitrarily defined. Distance between two vectors can be expressed by the metric tensor, a tensor of rank 2 (i.e. a matrix). Consider a general vector x=[x₁ x₂ . . . ]. The distance between two vectors in matrix form is

$\left( {\Delta \; s} \right)^{2} = {\begin{bmatrix} g_{11} & g_{12} \\ g_{21} & g_{22} \end{bmatrix} \times \left\lbrack \left\lbrack {\begin{matrix} {\Delta \; x_{1}} & \left. {\Delta \; x_{2}} \right\rbrack \end{matrix} \cdot \left\lbrack \begin{matrix} {\Delta \; x_{1}} & \left. \left. {\Delta \; x_{2}} \right\rbrack \right\rbrack \end{matrix} \right.} \right. \right.}$

where ??? denotes cross product and ??? outer product. The system is configurable with regards to the definition of the x's and the value of the g's.

Time in the synchronization is defined fundamentally by the cycles of the participants in the social learning network. As in all definitions of time, the social learning network goes through cycles, which are progressions during which participants go through sequences of independent and interdependent actions at superimposed scales. The definition of time and the position on the clock is based on an n-element time vector, whose distances from other clocks' positions can be calculated.

The system thus includes a master clock that can transform the time definition for a participant in the social learning network into Universal Time, and the synchronizer coordinates positions of participants who are operating in the context of their own clocks. When an event occurs, i.e. a state change or transition, the positions and their distances are reevaluated. Positions and/or events may change based on interaction with, or attributes of, nodes unrelated to the same clock. Therefore, the system keeps track of which participants or sub-networks are nearest one another and are, therefore, candidates for likeness discovery and clustering. The coordinated nodes each have a vector of dynamic attributes that are not necessarily predefined, but which can be dynamically defined based on a particular set of coordinates for a social learning network, i.e., choosing the set of x's and the value of the g's in the equation above. Previously unsynchronized attributes may change based on interactions between nodes.

Computational efficiency in analyzing such complicated relationships requires reducing the dimensionality of the problem, i.e., representing the data in a smaller number of dimensions. Several techniques may be used, and experience with the system enables the analyses to be refined. One technique is multidimensional scaling which, in its simplest form, starts with a matrix of pairwise distances between the nodes and not the nodes' coordinates. These pairwise distances are possibly scaled or possibly asymmetric. The relative magnitudes of the eigenvalues of this distance matrix indicate which columns of the matrix contributes most to the estimation of the position of the nodes based only on the pairwise distances. When several of these eigenvalues are much larger than the rest, then the corresponding columns provide a lower-dimensional representation that adequately describes the data. The concept is extended to varying weights and missing data, and includes nonlinearities and categorical variables. Once coordinates in the particular spacetime of the network are established, multidimensional Voronoi diagrams and their duals,

Delaunay triangulation, are used to keep track of the magnitude of readjustment needed when a node changes state.

Once clusters of similarity are identified, the system targets information to those nodes. Information includes a notification that each node is part of a particular cluster, along with content, and links to additional content that is related to the focus of the cluster. The system may also receive information from each node that changes the node's state, Universal Time, or clustering of the nodes.

In the particular embodiment where the reading of books by mentors and students is the type of learning activity involved in the present system, the following “clocks” exist and are synchronized according to the present method. The simultaneity between all of the clocks helps provide a rich and unique experience for each student who is communicating, generally in writing with a mentor or “pen pal” about the subject matter of the jointly-read book. For example, the Genre Clock is timed to the various stages of the cycle and the specific genre; the Pen Pal Pairs Clock is timed according to the actual timing of pen pal deliveries in the cycle; the Individual Pen Pal Clock reflects the particular interests and activities of a specific pen pal; and the Community Clock provides an ongoing assortment of community related activities that may or may not be related to the genre or the pen pal's stage in a cycle.

The Genre Clock

All participants may follow the same genre sequence so there will be a set of genre-related information and activities that each participant is offered when they reach a particular point in the cycle. For example, a week after a pen pal receives a book to read, the system operator portion of the method will remind the pen pal to check out “About the Book” for additional information about the book. As another example, when a pen pal is waiting for their pen pal's letter, the pen pal may be asked to participate in a subject-related field trip.

The Pen Pal Pair Clock

Each pen pal pair will have its own schedule and individual cycles will flow according to the book selection dates, the reading of the book, and the transfer and receipt of letters between the pen pal (“mentor”) and student. Each pen pal pair cycle may take a different amount of time. Every sign-on by every pen pal will be unique because the website will always reflect where a pen pal is in a cycle as well as what activities and resources relate to their specific interests.

The Individual Pen Pal Clock

Although it is similar to the pen pal pair clock, the individual pen pal clock will also contain items and activities that reflect the individual pen pal's experiences and interests. For example, if the pen pal regularly completes crossword puzzles, the pen pal may be invited to participate in a cross-community crossword challenge.

The Community Clock

This is the part of the system that is constantly changing and encouraging participants to interact with the community. It includes polls, contests, live feeds, etc.

While one or more preferred embodiments of the invention have been described above, it should be understood that any and all equivalent realizations of the present invention are included within the scope and spirit thereof. The embodiments depicted are presented by way of example only and are not intended as limitations upon the present invention, Thus, it should be understood by those of ordinary skill in this art that the present invention is not limited to these embodiments since modifications can be made. Therefore, contemplated that any and all such embodiments are included in the present invention as may fall within the scope and spirit thereof. 

1. A method for determining node similarity by calculating, within a connected computer network, a comparative distance for each pair of a plurality of nodes on the connected computer network, wherein each node comprises a plurality of attributes and each attribute includes a value comprising the steps of: a. having a computer identify a plurality of attributes corresponding to each node of the plurality of nodes on the connected computer network; b. having a computer compare a first attribute corresponding to a first node to a first attribute corresponding to a second node, wherein the comparison comprises determining a relative difference between the first attribute of the first node and the first attribute of the second node without reference to a point of origin for either the first node or the second node; c. repeating step (b) for each attribute corresponding to the second node; d. repeating steps (b) and (c) for each attribute corresponding to the first node; and e. assessing the similarity between the first and second node by calculating the comparative distance based on a plurality of relative differences determined at the step (b).
 2. The method of claim 1 wherein the determining a relative difference at step (b) comprises representing the value of each attribute as a scalar number,
 3. The method of claim 2 wherein the representing a value of each attribute as a scalar number comprises semantically comparing the value to a predefined value contained in a semantic database.
 4. The method of claim 1 further comprising the step of weighting each relative difference determined at step (b).
 5. The method of claim 4 further comprising the step of dynamically altering the weight applied to each relative difference.
 6. The method of claim 1 further comprising dynamically altering the identification of the plurality of attributes at step (a).
 7. The method of claim 1 wherein the first node and the second node are part of a subset of the plurality of nodes, wherein the subset is identified based on at least one of the plurality of attributes.
 8. The method of claim 1 further comprising repeating steps (a) through (e) for each of the plurality of nodes.
 9. The method of claim 8 further comprising graphically displaying the comparative distances calculated at the steps (e).
 10. The method of claim 1 further comprising the step of identifying one or more additional nodes based on the assessed similarity between the first node and the second node.
 11. A method for determining node placement among a collection of nodes grouped in clusters comprising the steps of: a. determining an attribute of a first node in a first cluster; b. determining an attribute in common among multiple nodes in a second cluster; c. assessing the similarity between the first node attribute and the second cluster common attribute; d. placing the first node into the second cluster based in part on the assessed similarity between the first node attribute and the second cluster common attribute.
 12. A method for serving content to a node in a network of nodes comprising the steps of: a. creating a relationship between a first node in the network and a second node in the network based on an assessment of the similarity between one or more attributes of the first node with one or more attributes of the second node; b. identifying an attribute of the first node that is not in common with an attribute of the second node; and c. serving content based on the relationship and on the attribute of the first node that is not in common with an attribute of the second node. 